package com.utils;

import java.io.*;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class IniWriter {


	//设置
	public static void setProfileString(String file, String section, String variable, String value) throws IOException {
		String fileContent, allLine, strLine, newLine, remarkStr;
		String getValue;
		BufferedReader bufferedReader = new BufferedReader(new FileReader(file));
		boolean isInSection = false;
		fileContent = "";
		try {

			while ((allLine = bufferedReader.readLine()) != null) {
				allLine = allLine.trim();
				if (allLine.split("[;]").length > 1)
					remarkStr = ";" + allLine.split(";")[1];
				else
					remarkStr = "";
				strLine = allLine.split(";")[0];
				Pattern p;
				Matcher m;
				p = Pattern.compile("(\\[)(.+)(\\])");
				m = p.matcher((strLine));

				if (m.matches()) {
					p = Pattern.compile("(\\[)(" + section + ")(\\])");
					m = p.matcher(strLine);
					if (m.matches()) {
						isInSection = true;
					} else {
						isInSection = false;
					}
				}
				if (isInSection == true) {
					strLine = strLine.trim();
					String[] strArray = strLine.split("=");
					getValue = strArray[0].trim();
					if (getValue.equalsIgnoreCase(variable)) {
						newLine = getValue + "=" + value + "" + remarkStr;
						fileContent += newLine + "\r\n";
						while ((allLine = bufferedReader.readLine()) != null) {
							fileContent += allLine + "\r\n";
						}
//		      bufferedReader.close();
						BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(file, false));
						bufferedWriter.write(fileContent);
						bufferedWriter.flush();
						bufferedWriter.close();

						//return true;
					}
				}
				fileContent += allLine + "\r\n";
			}
		} catch (IOException ex) {
			throw ex;
		}
		finally {
			bufferedReader.close();
		}
		//return false;
	}

//	public static void main(String[] args)throws Exception
//	{
//		try {
////			String path = Thread.currentThread().getContextClassLoader().getResource("").toString();
////			try {
////				path = URLDecoder.decode(path, "utf-8");
////			} catch (UnsupportedEncodingException e2) {
////				e2.printStackTrace();
////			}
////			path = path.replace("file:", "");
////			path = path.replace("classes/", "");
////			path += "config.ini";
//			IniWriter.setProfileString(/*path*/Check_Info.NATIVE_LIBRARY_NAME, "config", "tools","78");
//			System.out.println("修改成功");
//		} catch (IOException e) {
//			e.printStackTrace();
//			System.out.println("修改失败");
//		}
//	}


}
